<script>
// app.js   的风格的水果

import { extractUrlParameters } from './utils/util';
import appConfig from './config/app.config.js';

import { getTabbarConfig } from '@/utils/tabbarPermission.js'
export default {
    data() {
        return {};
    },
    onLaunch(options) {
        console.log(getTabbarConfig().tabs[0].pagePath,'启动页........')
        // 根据需要设置启动页
        uni.reLaunch({
            url: getTabbarConfig().tabs[0].pagePath
        });
        console.log('onLaunch options:', options);
        const updateManager = uni.getUpdateManager();
        updateManager.onCheckForUpdate(function (res) {
            // 请求完新版本信息的回调
            if (res.hasUpdate) {
                // 发现新版本，显示升级提示
                uni.showModal({
                    title: '更新提示',
                    content: '发现新版本，是否立即升级？',
                    success: function (res) {
                        if (res.confirm) {
                            // 用户点击确定，跳转到小程序更新页面
                            updateManager.applyUpdate();
                        }
                    }
                });
            }
        });
        // 展示本地存储能力
        var logs = uni.getStorageSync('logs') || [];
        logs.unshift(Date.now());
        uni.setStorageSync('logs', logs);
        this.globalData.getSystemInfo();
        // this.openDoor(options)
        // 获取用户坐标
        this.getUserLocation();
    },
    onShow(options) {
        console.log('onShow options:', options);
        // 存储打开时的门店id
        uni.setStorageSync('shopId', options.query.shop);
        this.globalData.openDoor(options);
    },
    globalData: {
        userInfo: uni.getStorageSync('userInfo') ? uni.getStorageSync('userInfo') : null,

        // 个人资料
        token: uni.getStorageSync('token') ? uni.getStorageSync('token') : '',

        code: '',

        //测试环境
        //baseUrl: 'https://5204bac8f2d5.ngrok-free.app',
        //baseUrl: 'http://42.192.77.180:6025',
        //baseUrl: 'http://192.168.1.10:9999',
        //baseUrl: 'http://42.192.77.180:6025',
		//baseUrl: 'http://192.168.1.106:9999',
        //baseUrl: 'http://192.168.1.105:9999',
        baseUrl: appConfig.api.baseUrl,
        //baseUrl: 'http://192.168.1.10:9999',
        //baseUrl: 'http://192.168.1.109:9999',
        // baseUrl: "http://42.192.77.180:7001/",
        // baseUrl: "http://42.192.77.180:6089",
          //baseUrl: "https://api-carlease-m.lixingpt.com",
        navBarHeight: 0,

        // 导航栏高度

        menuHeight: 0,

        //胶囊按钮 高度

        statusBarHeight: 0,

        //状态栏高度
        menuRight: 0,

        //胶囊按钮 距离屏幕右边的距离,
        servicePhone: '',

        store: '',

        //门店
        Table: '',

        //桌号
        requestParameter_shopId: '',

        latitude: '',
        longitude: '',
        storeInformation: '',
        cartStatus: 0,
        height: null,

        //导航栏栏高度
        //顶部标题栏高度 也就是时间那一行
        navTop: null,

        // 用户位置信息
        userLocation: null,

        openDoor(options) {
            // 获取启动URL
            let launchUrl = options.query.q;
            if (options.query.scancode_time === uni.getStorageSync('scancode_time')) {
                return;
            }
            uni.setStorageSync('scancode_time', options.query.scancode_time);
            const userInfo = uni.getStorageSync('userInfo');
            console.log('user:' + userInfo);
            if (options.scene === 1011 && launchUrl) {
                //是否是通过扫描普通二维码打开的
                console.log(launchUrl);
                uni.setStorageSync('scanCodeCotent', decodeURIComponent(launchUrl));
                if (!userInfo) {
                    // 已经登陆过
                    //未登录跳转至登录
                    const pages = getCurrentPages();
                    const currentPage = '';
                    if (pages.length > 0) {
                        currentPage = pages[pages.length - 1].route;
                    }
                    // 获取当前页面路径,防止重复进入
                    if (currentPage !== '/pages/login/index') {
                        uni.navigateTo({
                            url: '/pages/login/index'
                        });
                    }
                }
                // }
            }
        },

        //获取用户手机屏幕信息
        getSystemInfo() {
            uni.getSystemInfo({
                success: (result) => {
                    this.navTop = result.statusBarHeight;
                    let capsuleObj = uni.getMenuButtonBoundingClientRect();
                    this.height = result.statusBarHeight + capsuleObj.height + (capsuleObj.top - result.statusBarHeight) * 2;
                    this.windowWidth = result.windowWidth;
                    this.windowHeight = result.windowHeight;
                    this.sH = result.statusBarHeight;
                    this.menuHeight = capsuleObj.height;
                }
            });
        },

        windowWidth: '',
        windowHeight: '',
        sH: '',

        // 获取用户位置
        getUserLocation() {
            console.log('开始获取用户位置');
            
            // 检查位置权限
            uni.getSetting({
                success: (res) => {
                    console.log('权限设置:', res.authSetting);
                    
                    if (res.authSetting['scope.userLocation'] === false) {
                        // 用户拒绝过位置权限，引导用户手动开启
                        uni.showModal({
                            title: '需要位置权限',
                            content: '为了为您提供更好的服务，需要获取您的位置信息',
                            confirmText: '去设置',
                            success: (modalRes) => {
                                if (modalRes.confirm) {
                                    uni.openSetting({
                                        success: (settingRes) => {
                                            if (settingRes.authSetting['scope.userLocation']) {
                                                this.getLocation();
                                            }
                                        }
                                    });
                                }
                            }
                        });
                    } else {
                        // 直接获取位置
                        this.getLocation();
                    }
                },
                fail: (err) => {
                    console.error('获取权限设置失败:', err);
                    // 直接尝试获取位置
                    this.getLocation();
                }
            });
        },
        
        // 获取位置信息
        getLocation() {
            uni.getLocation({
                type: 'gcj02', // gcj02 为火星坐标系，适用于中国
                success: (res) => {
                    console.log('获取位置成功:', res);
                    
                    const locationData = {
                        latitude: res.latitude,
                        longitude: res.longitude,
                        timestamp: Date.now()
                    };
                    
                    // 保存到全局数据
                    this.globalData.userLocation = locationData;
                    
                    // 保存到本地存储
                    uni.setStorageSync('userLocation', locationData);
                    
                    console.log('位置信息已保存:', locationData);
                    
                    // 触发位置更新事件
                    this.$emit('locationUpdated', locationData);
                    
                },
                fail: (err) => {
                    console.error('获取位置失败:', err);
                    
                    // 使用默认位置（上海）
                    const defaultLocation = {
                        latitude: 31.226215,
                        longitude: 121.482595,
                        timestamp: Date.now(),
                        isDefault: true
                    };
                    
                    this.globalData.userLocation = defaultLocation;
                    uni.setStorageSync('userLocation', defaultLocation);
                    
                    uni.showToast({
                        title: '获取位置失败，使用默认位置',
                        icon: 'none'
                    });
                }
            });
        },
        
        // 更新位置信息（供其他页面调用）
        updateLocation() {
            this.getLocation();
        },
        
        // 获取当前位置信息
        getCurrentLocation() {
            return this.globalData.userLocation || uni.getStorageSync('userLocation');
        }
    }
};
</script>
<style>
@import './app.css';
</style>
